home *** CD-ROM | disk | FTP | other *** search
/ SuperHack / SuperHack CD.bin / CODING / CPP / WFC010.ZIP / INCLUDE / CNETWKST.HPP < prev    next >
C/C++ Source or Header  |  1995-12-07  |  6KB  |  210 lines

  1. #if ! defined( NET_WORKSTATION_CLASS_HEADER )
  2.  
  3. /*
  4. ** Author: Samuel R. Blackburn
  5. ** CI$: 76300,326
  6. ** Internet: sammy@sed.csc.com
  7. **
  8. ** You can use it any way you like as long as you don't try to sell it.
  9. **
  10. ** Any attempt to sell WFC in source code form must have the permission
  11. ** of the original author. You can produce commercial executables with
  12. ** WFC but you can't sell WFC.
  13. **
  14. ** Copyright, 1995, Samuel R. Blackburn
  15. **
  16. ** $Workfile: $
  17. ** $Revision: $
  18. ** $Modtime: $
  19. */
  20.  
  21. #define NET_WORKSTATION_CLASS_HEADER
  22.  
  23. class CWorkstationUser : public CObject
  24. {
  25.    DECLARE_SERIAL( CWorkstationUser )
  26.  
  27.    private:
  28.  
  29.       void m_Initialize( void );
  30.  
  31.    public:
  32.  
  33.       CWorkstationUser();
  34.  
  35.       /*
  36.       ** Can't make Copy take a const pointer because Microsoft screwed up the 
  37.       ** net API header files...
  38.       */
  39.  
  40.       CWorkstationUser( WKSTA_USER_INFO_1 *source );
  41.       CWorkstationUser( const CWorkstationUser& source );
  42.       virtual ~CWorkstationUser();
  43.  
  44.       /*
  45.       ** Patterned after WKSTA_USER_INFO_1
  46.       */
  47.  
  48.       CString UserName;
  49.       CString LogonDomain;
  50.       CString OtherDomains;
  51.       CString LogonServer;
  52.  
  53.       /*
  54.       ** Can't make Copy take a const pointer because Microsoft screwed up the 
  55.       ** net API header files...
  56.       */
  57.  
  58.       virtual void Copy( WKSTA_USER_INFO_1 *source );
  59.       virtual void Copy( const CWorkstationUser& source );
  60.       virtual void Empty( void );
  61.       virtual void Serialize( CArchive& archive );
  62. };
  63.  
  64. class CWorkstationInformation : public CObject
  65. {
  66.    DECLARE_SERIAL( CWorkstationInformation )
  67.  
  68.    private:
  69.  
  70.       void m_Initialize( void );
  71.  
  72.    public:
  73.  
  74.       CWorkstationInformation();
  75.  
  76.       /*
  77.       ** Can't make Copy take a const pointer because Microsoft screwed up the 
  78.       ** net API header files...
  79.       */
  80.  
  81.       CWorkstationInformation( WKSTA_INFO_100 *source );
  82.       CWorkstationInformation( WKSTA_INFO_101 *source );
  83.       CWorkstationInformation( WKSTA_INFO_102 *source );
  84.       CWorkstationInformation( const CWorkstationInformation& source );
  85.       virtual ~CWorkstationInformation();
  86.  
  87.       /*
  88.       ** Patterned after WKSTA_INFO_102
  89.       */
  90.  
  91.       DWORD   PlatformID;
  92.       CString ComputerName;
  93.       CString LANGroup;
  94.       DWORD   MajorVersion;
  95.       DWORD   MinorVersion;
  96.       CString LANRoot;
  97.       DWORD   NumberOfLoggedOnUsers;
  98.  
  99.       /*
  100.       ** Can't make Copy take a const pointer because Microsoft screwed up the 
  101.       ** net API header files...
  102.       */
  103.  
  104.       virtual void Copy( WKSTA_INFO_100 *source );
  105.       virtual void Copy( WKSTA_INFO_101 *source );
  106.       virtual void Copy( WKSTA_INFO_102 *source );
  107.       virtual void Copy( const CWorkstationInformation& source );
  108.       virtual void Empty( void );
  109.       virtual void Serialize( CArchive& archive );
  110. };
  111.  
  112. class CWorkstationTransport : public CObject
  113. {
  114.    DECLARE_SERIAL( CWorkstationTransport )
  115.  
  116.    private:
  117.  
  118.       void m_Initialize( void );
  119.  
  120.    public:
  121.  
  122.       CWorkstationTransport();
  123.  
  124.       /*
  125.       ** Can't make Copy take a const pointer because Microsoft screwed up the 
  126.       ** net API header files...
  127.       */
  128.  
  129.       CWorkstationTransport( WKSTA_TRANSPORT_INFO_0 *source );
  130.       CWorkstationTransport( const CWorkstationTransport& source );
  131.       virtual ~CWorkstationTransport();
  132.  
  133.       /*
  134.       ** Patterned after WKSTA_USER_INFO_1
  135.       */
  136.  
  137.       DWORD   QualityOfService;
  138.       DWORD   NumberOfVirtualCircuits;
  139.       CString Name;
  140.       CString Address;
  141.       BOOL    WANish;
  142.  
  143.       /*
  144.       ** Can't make Copy take a const pointer because Microsoft screwed up the 
  145.       ** net API header files...
  146.       */
  147.  
  148.       virtual void Copy( WKSTA_TRANSPORT_INFO_0 *source );
  149.       virtual void Copy( const CWorkstationTransport& source );
  150.       virtual void Empty( void );
  151.       virtual void Serialize( CArchive& archive );
  152. };
  153.  
  154. class CNetWorkstation : public CNetwork
  155. {
  156.    DECLARE_SERIAL( CNetWorkstation )
  157.  
  158.    private:
  159.  
  160.       void m_Initialize( void );
  161.  
  162.    protected:
  163.  
  164.       /*
  165.       ** Workstation information variables
  166.       */
  167.  
  168.       WKSTA_INFO_100 *m_InformationBuffer100;
  169.       WKSTA_INFO_101 *m_InformationBuffer101;
  170.       WKSTA_INFO_102 *m_InformationBuffer102;
  171.  
  172.       /*
  173.       ** Transport enumeration variables
  174.       */
  175.  
  176.       WKSTA_TRANSPORT_INFO_0 *m_TransportBuffer;
  177.       DWORD m_TransportResumeHandle;
  178.       DWORD m_TransportCurrentEntryNumber;
  179.       DWORD m_TransportNumberOfEntriesRead;
  180.       DWORD m_TransportTotalNumberOfEntries;
  181.  
  182.       /*
  183.       ** User enumeration variables
  184.       */
  185.  
  186.       WKSTA_USER_INFO_1 *m_UserBuffer;
  187.       DWORD m_UserResumeHandle;
  188.       DWORD m_UserCurrentEntryNumber;
  189.       DWORD m_UserNumberOfEntriesRead;
  190.       DWORD m_UserTotalNumberOfEntries;
  191.  
  192.    public:
  193.  
  194.       CNetWorkstation();
  195.       CNetWorkstation( LPCTSTR machine_name );
  196.       virtual ~CNetWorkstation();
  197.  
  198.       virtual void  Close( void );
  199.       virtual BOOL  EnumerateInformation( void );
  200.       virtual BOOL  EnumerateTransports( void );
  201.       virtual BOOL  EnumerateUsers( void );
  202.       virtual BOOL  GetCurrentUser( CWorkstationUser& information );
  203.       virtual BOOL  GetNext( CWorkstationInformation& information );
  204.       virtual BOOL  GetNext( CWorkstationTransport& information );
  205.       virtual BOOL  GetNext( CWorkstationUser& information );
  206.       virtual void  Serialize( CArchive& archive );
  207. };
  208.  
  209. #endif // NET_WORKSTATION_CLASS_HEADER
  210.